package intermouse;

import java.util.List;

/**
 * A kő osztály
 * 
 * @author      Sőre András
 * @version     1.0
 * @since       2013-03-24
 */
public class Stone extends FieldObject {

	/**
	 * A Stone osztály konstruktora.
	 */
	Stone(){
		
	}
	
	/**
	 * Ide léphet-e egy másik kő
	 * @param stone Idelépni akaró kő
	 * @param isFirst első lépni akaró kör a sorban
	 * @param direction lépés iránya
	 * @return
	 * megadja a paraméterként kapott kőnek hogy a field mezőre léphet-e.
	 */
	boolean canStep(Stone stone, boolean isFirst, int direction){
		System.out.println(">> Stone.canStep(Stone, boolean, int) : bool");
		if(!isFirst) return false;
		boolean can;
		if (field.getAdjacentFields().get(direction) == null) return false;
		can = field.getAdjacentFields().get(direction).canStep(this, false, direction);
		if(can){
			//ez a kő arrébb lép (eltolódik)
			setField(field.getAdjacentFields().get(direction));
			//a másik kő idejön (ami tolja) de ez nem kell ide mert ez az ő felelőssége
			//stone.setField(field);
		}
		System.out.println("<< return");
		return can;
	}
	
	/**
	 * Ide léphet-e egy hangyász
	 * @param antEater Idelépni akaró hangyász
	 * @param direction lépés iránya
	 * @return
	 * megadja a paraméterként kapott hangyásznak hogy a field mezőre léphet-e.
	 */
	boolean canStep(AntEater antEater, int direction){
		System.out.println(">> Stone.canStep(AntEater, int) : bool");
		System.out.println("<< return");
		return field.getAdjacentFields().get(direction).canStep(this, true, direction);
		//                                                            ^ Zoli ez ugye itt true
	}
	
	/**
	 * Ide léphet-e egy hangya - nem
	 * @param ant Idelépni akaró hangya
	 * @return
	 * megadja a paraméterként kapott hangyának hogy a field mezőre léphet-e.
	 */
	boolean canStep(Ant ant){
		System.out.println(">> Stone.canStep(Ant) : bool");
		System.out.println("<< return");
		return false;
	}
	
}
